ShowTable of Contents
はじめに
「htmlFilter」 と 「htmlFilterIn」 プロパティはリッチテキスト・編集ボックス・複数行編集ボックスの各コントロールで指定できるプロパティです。
Lotus Notes 文書を XPages で表示するときに、表示フィールドに悪意のスクリプトが埋め込まれれことで問題が起こることがあります。そのような悪意のあるスクリプトを表示させない、あるいは文書の保存の際にはスクリプトを保存させないために、入出力時のフィルタを設定するために、これらのプロパティを使用します。
プロパティの違いと設定できるフィルタ
この2つのプロパティのうち「htmlFilter」 プロパティは、保存される文書のデータを XPages で
表示するときのフィルタを設定します。
一方、「htmlFilterIn」 プロパティは、XPages で編集した文章を
保存するときのフィルタを設定します。
指定できるフィルターは以下の4つです。デフォルトでは何も指定されていませんん。
- 「identity」 ・・・ コンテンツの内容に手を加えない
- 「acf」 ・・・ Active Content Filter (ACF) によるフィルタリングを行い、潜在的な危険性を持つ
- 「empty」 ・・・ コンテンツのすべての内容を削除する
- 「striptags」 ・・・ タグをすべて取り去り、平文のみを残す
参考文献: XPages Wiki の 「Work with RichText」
動作の詳細
これらの2つのプロパティの違いを見るために、10個のリッチテキストフィールドを持つフォームを作成し、このフォームの表示する XPage を作成し、リッチテキストコントロールでこれらのフィールドを表示・編集できるようにします。
フィールド名 | リッチテキストコントロールの
「htmlFilter」 プロパティの値 | リッチテキストコントロールの
「htmlFilterIn」 プロパティの値 |
Body01 | 設定なし | 設定なし |
Body02 | identity | 設定なし |
Body03 | acf | 設定なし |
Body04 | empty | 設定なし |
Body05 | striptags | 設定なし |
Body01_1 | 設定なし | 設定なし |
Body02_1 | 設定なし | identity |
Body03_1 | 設定なし | acf |
Body04_1 | 設定なし | empty |
Body05_1 | 設定なし | striptags |
リッチテキストフィールドでテストするコンテンツとして以下の内容を使用します。これは 「htmlFilter」プロパティのテストをする、最初の5つのフィールドにLotus Notes から設定します。
最初のボタンには JavaScript で以下のようなコードを記述します。
次のボタンには LotusScript で以下のようなコードを記述します。
XPages ではなく、Domino HTML で表示すると、これらの文書はそのまま表示され、どちらのボタンも JavaScript の alert() として埋め込まれて、Web ブラウザで実行することが可能です。
htmlFilter プロパティ
htmlFilterIn プロパティ